#ifndef MEMPOOL_H_
#define MEMPOOL_H_

#include "conf.h"
C_CODE_BEGIN

struct mempool;

EXPORT_FUNC struct mempool* mempool_create( size_t alignsize , size_t objszie , size_t basesize );
EXPORT_FUNC void mempool_destroy( struct mempool* );
EXPORT_FUNC void mempool_clear( struct mempool* );
EXPORT_FUNC void* mempool_fetch( struct mempool* );
EXPORT_FUNC void mempool_return( struct mempool* , void* );
EXPORT_FUNC void mempool_reserve( struct mempool* , size_t );
EXPORT_FUNC size_t mempool_get_usesize( struct mempool* );
EXPORT_FUNC size_t mempool_get_freesize( struct mempool* );


C_CODE_END

#endif // MEMPOOL_H_